<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>SDL2_gfx: I:/Sources/sdl2gfx/SDL2_imageFilter.c File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">SDL2_gfx
   &#160;<span id="projectnumber">1.0.1</span>
   </div>
   <div id="projectbrief">GraphicsprimitivesandsurfacefunctionsforSDL2</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.8.0 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">I:/Sources/sdl2gfx/SDL2_imageFilter.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &quot;SDL.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="_s_d_l2__image_filter_8h_source.html">SDL2_imageFilter.h</a>&quot;</code><br/>
</div>
<p><a href="_s_d_l2__image_filter_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr class="memitem:a700fb30611761c46a674a45cc28ff561"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a700fb30611761c46a674a45cc28ff561">SWAP_32</a>(x)&#160;&#160;&#160;(((x) &gt;&gt; 24) | (((x) &amp; 0x00ff0000) &gt;&gt; 8)  | (((x) &amp; 0x0000ff00) &lt;&lt; 8)  | ((x) &lt;&lt; 24))</td></tr>
<tr class="memdesc:a700fb30611761c46a674a45cc28ff561"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps the byte order in a 32bit integer (LSB becomes MSB, etc.).  <a href="#a700fb30611761c46a674a45cc28ff561"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a798ce71024ee1a1d1b174fd60fe79917"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a798ce71024ee1a1d1b174fd60fe79917">SDL_imageFilterMMXdetect</a> (void)</td></tr>
<tr class="memdesc:a798ce71024ee1a1d1b174fd60fe79917"><td class="mdescLeft">&#160;</td><td class="mdescRight">MMX detection routine (with override flag).  <a href="#a798ce71024ee1a1d1b174fd60fe79917"></a><br/></td></tr>
<tr class="memitem:a5dff661660755161bb4aaf6199cd1384"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a5dff661660755161bb4aaf6199cd1384">SDL_imageFilterMMXoff</a> ()</td></tr>
<tr class="memdesc:a5dff661660755161bb4aaf6199cd1384"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable MMX check for filter functions and and force to use non-MMX C based code.  <a href="#a5dff661660755161bb4aaf6199cd1384"></a><br/></td></tr>
<tr class="memitem:a353ee234c3b51b33c4c5c4b30db5832d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a353ee234c3b51b33c4c5c4b30db5832d">SDL_imageFilterMMXon</a> ()</td></tr>
<tr class="memdesc:a353ee234c3b51b33c4c5c4b30db5832d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable MMX check for filter functions and use MMX code if available.  <a href="#a353ee234c3b51b33c4c5c4b30db5832d"></a><br/></td></tr>
<tr class="memitem:a9f06507eb0b63198dbd67495d61c9b20"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a9f06507eb0b63198dbd67495d61c9b20">SDL_imageFilterAdd</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a9f06507eb0b63198dbd67495d61c9b20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using Add: D = saturation255(S1 + S2)  <a href="#a9f06507eb0b63198dbd67495d61c9b20"></a><br/></td></tr>
<tr class="memitem:ace072118fef77973210eb04fb4bfc779"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#ace072118fef77973210eb04fb4bfc779">SDL_imageFilterMean</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:ace072118fef77973210eb04fb4bfc779"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using Mean: D = S1/2 + S2/2.  <a href="#ace072118fef77973210eb04fb4bfc779"></a><br/></td></tr>
<tr class="memitem:a3c01cf8576ea7a0dfc09dbaa953c9287"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a3c01cf8576ea7a0dfc09dbaa953c9287">SDL_imageFilterSub</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a3c01cf8576ea7a0dfc09dbaa953c9287"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using Sub: D = saturation0(S1 - S2)  <a href="#a3c01cf8576ea7a0dfc09dbaa953c9287"></a><br/></td></tr>
<tr class="memitem:a472909f904274255cd6793c520172e48"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a472909f904274255cd6793c520172e48">SDL_imageFilterAbsDiff</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a472909f904274255cd6793c520172e48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using AbsDiff: D = | S1 - S2 |.  <a href="#a472909f904274255cd6793c520172e48"></a><br/></td></tr>
<tr class="memitem:af4633031d40a9ea0956a2f3c6c87a384"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#af4633031d40a9ea0956a2f3c6c87a384">SDL_imageFilterMult</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:af4633031d40a9ea0956a2f3c6c87a384"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using Mult: D = saturation255(S1 * S2)  <a href="#af4633031d40a9ea0956a2f3c6c87a384"></a><br/></td></tr>
<tr class="memitem:a346db972dff9c56e3c45c904eaa3c39a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a346db972dff9c56e3c45c904eaa3c39a">SDL_imageFilterMultNorASM</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int SrcLength)</td></tr>
<tr class="memdesc:a346db972dff9c56e3c45c904eaa3c39a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal ASM Filter using MultNor: D = S1 * S2.  <a href="#a346db972dff9c56e3c45c904eaa3c39a"></a><br/></td></tr>
<tr class="memitem:a5f3c9fd40426bb46eba5ac167505dcc5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a5f3c9fd40426bb46eba5ac167505dcc5">SDL_imageFilterMultNor</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a5f3c9fd40426bb46eba5ac167505dcc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using MultNor: D = S1 * S2.  <a href="#a5f3c9fd40426bb46eba5ac167505dcc5"></a><br/></td></tr>
<tr class="memitem:a80737f6427c7bdb30d39a92f6524fc14"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a80737f6427c7bdb30d39a92f6524fc14">SDL_imageFilterMultDivby2</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a80737f6427c7bdb30d39a92f6524fc14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using MultDivby2: D = saturation255(S1/2 * S2)  <a href="#a80737f6427c7bdb30d39a92f6524fc14"></a><br/></td></tr>
<tr class="memitem:a30e685653eb1050c7d48feaeb8f801a1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a30e685653eb1050c7d48feaeb8f801a1">SDL_imageFilterMultDivby4</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a30e685653eb1050c7d48feaeb8f801a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using MultDivby4: D = saturation255(S1/2 * S2/2)  <a href="#a30e685653eb1050c7d48feaeb8f801a1"></a><br/></td></tr>
<tr class="memitem:a85837ce1b5de1f907b6b9053922b5cbc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a85837ce1b5de1f907b6b9053922b5cbc">SDL_imageFilterBitAnd</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a85837ce1b5de1f907b6b9053922b5cbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using BitAnd: D = S1 &amp; S2.  <a href="#a85837ce1b5de1f907b6b9053922b5cbc"></a><br/></td></tr>
<tr class="memitem:a5cf1c477f4e32d02f74ee95d9f7b0021"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a5cf1c477f4e32d02f74ee95d9f7b0021">SDL_imageFilterBitOr</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a5cf1c477f4e32d02f74ee95d9f7b0021"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using BitOr: D = S1 | S2.  <a href="#a5cf1c477f4e32d02f74ee95d9f7b0021"></a><br/></td></tr>
<tr class="memitem:a0ea22f01c6a4724bac307da3e5355f58"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a0ea22f01c6a4724bac307da3e5355f58">SDL_imageFilterDiv</a> (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:a0ea22f01c6a4724bac307da3e5355f58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using Div: D = S1 / S2.  <a href="#a0ea22f01c6a4724bac307da3e5355f58"></a><br/></td></tr>
<tr class="memitem:ac3abfaa8ec2e88c3c4893588c5555856"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#ac3abfaa8ec2e88c3c4893588c5555856">SDL_imageFilterBitNegation</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length)</td></tr>
<tr class="memdesc:ac3abfaa8ec2e88c3c4893588c5555856"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using BitNegation: D = !S.  <a href="#ac3abfaa8ec2e88c3c4893588c5555856"></a><br/></td></tr>
<tr class="memitem:a812cb307cb60ef31f1ffe81a9eee6bb1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a812cb307cb60ef31f1ffe81a9eee6bb1">SDL_imageFilterAddByte</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char C)</td></tr>
<tr class="memdesc:a812cb307cb60ef31f1ffe81a9eee6bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using AddByte: D = saturation255(S + C)  <a href="#a812cb307cb60ef31f1ffe81a9eee6bb1"></a><br/></td></tr>
<tr class="memitem:a660543426c47dfec39a349eb3b8f905b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a660543426c47dfec39a349eb3b8f905b">SDL_imageFilterAddUint</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned int C)</td></tr>
<tr class="memdesc:a660543426c47dfec39a349eb3b8f905b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using AddUint: D = saturation255((S[i] + Cs[i % 4]), Cs=Swap32((uint)C)  <a href="#a660543426c47dfec39a349eb3b8f905b"></a><br/></td></tr>
<tr class="memitem:ab82db97d129c8cfc36780bcdc6286fcc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#ab82db97d129c8cfc36780bcdc6286fcc">SDL_imageFilterAddByteToHalf</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char C)</td></tr>
<tr class="memdesc:ab82db97d129c8cfc36780bcdc6286fcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using AddByteToHalf: D = saturation255(S/2 + C)  <a href="#ab82db97d129c8cfc36780bcdc6286fcc"></a><br/></td></tr>
<tr class="memitem:a657e128016cc448778007d8b6475dd65"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a657e128016cc448778007d8b6475dd65">SDL_imageFilterSubByteMMX</a> (unsigned char *Src1, unsigned char *Dest, unsigned int SrcLength, unsigned char C)</td></tr>
<tr class="memdesc:a657e128016cc448778007d8b6475dd65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal MMX Filter using SubByte: D = saturation0(S - C)  <a href="#a657e128016cc448778007d8b6475dd65"></a><br/></td></tr>
<tr class="memitem:a387fb6f0d48cc5d08f37f7f9b92d14b2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a387fb6f0d48cc5d08f37f7f9b92d14b2">SDL_imageFilterSubByte</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char C)</td></tr>
<tr class="memdesc:a387fb6f0d48cc5d08f37f7f9b92d14b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using SubByte: D = saturation0(S - C)  <a href="#a387fb6f0d48cc5d08f37f7f9b92d14b2"></a><br/></td></tr>
<tr class="memitem:abb343ef95e22945e1d4d648b2e176e64"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#abb343ef95e22945e1d4d648b2e176e64">SDL_imageFilterSubUint</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned int C)</td></tr>
<tr class="memdesc:abb343ef95e22945e1d4d648b2e176e64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using SubUint: D = saturation0(S[i] - Cs[i % 4]), Cs=Swap32((uint)C)  <a href="#abb343ef95e22945e1d4d648b2e176e64"></a><br/></td></tr>
<tr class="memitem:a68851aed2dcc5dfd2f3b258236f3b88c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a68851aed2dcc5dfd2f3b258236f3b88c">SDL_imageFilterShiftRight</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)</td></tr>
<tr class="memdesc:a68851aed2dcc5dfd2f3b258236f3b88c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ShiftRight: D = saturation0(S &gt;&gt; N)  <a href="#a68851aed2dcc5dfd2f3b258236f3b88c"></a><br/></td></tr>
<tr class="memitem:a540d4625d76bcd03318c2a59ce650fdb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a540d4625d76bcd03318c2a59ce650fdb">SDL_imageFilterShiftRightUint</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)</td></tr>
<tr class="memdesc:a540d4625d76bcd03318c2a59ce650fdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ShiftRightUint: D = saturation0((uint)S[i] &gt;&gt; N)  <a href="#a540d4625d76bcd03318c2a59ce650fdb"></a><br/></td></tr>
<tr class="memitem:a06f7a19d6e2fc89d7b48cc45d715806d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a06f7a19d6e2fc89d7b48cc45d715806d">SDL_imageFilterMultByByte</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char C)</td></tr>
<tr class="memdesc:a06f7a19d6e2fc89d7b48cc45d715806d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using MultByByte: D = saturation255(S * C)  <a href="#a06f7a19d6e2fc89d7b48cc45d715806d"></a><br/></td></tr>
<tr class="memitem:a0713d6c267fba9756d6beae81e89f9e4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a0713d6c267fba9756d6beae81e89f9e4">SDL_imageFilterShiftRightAndMultByByte</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N, unsigned char C)</td></tr>
<tr class="memdesc:a0713d6c267fba9756d6beae81e89f9e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ShiftRightAndMultByByte: D = saturation255((S &gt;&gt; N) * C)  <a href="#a0713d6c267fba9756d6beae81e89f9e4"></a><br/></td></tr>
<tr class="memitem:a4561a73b249a26babc4c469ffbdae604"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a4561a73b249a26babc4c469ffbdae604">SDL_imageFilterShiftLeftByte</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)</td></tr>
<tr class="memdesc:a4561a73b249a26babc4c469ffbdae604"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ShiftLeftByte: D = (S &lt;&lt; N)  <a href="#a4561a73b249a26babc4c469ffbdae604"></a><br/></td></tr>
<tr class="memitem:a250e796fb2db470da0a78b74b78114e8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a250e796fb2db470da0a78b74b78114e8">SDL_imageFilterShiftLeftUint</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)</td></tr>
<tr class="memdesc:a250e796fb2db470da0a78b74b78114e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ShiftLeftUint: D = ((uint)S &lt;&lt; N)  <a href="#a250e796fb2db470da0a78b74b78114e8"></a><br/></td></tr>
<tr class="memitem:a98372fea76310903abef7808db10d226"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a98372fea76310903abef7808db10d226">SDL_imageFilterShiftLeft</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)</td></tr>
<tr class="memdesc:a98372fea76310903abef7808db10d226"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter ShiftLeft: D = saturation255(S &lt;&lt; N)  <a href="#a98372fea76310903abef7808db10d226"></a><br/></td></tr>
<tr class="memitem:a951a062e15df290a137428e1e0f4d5ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a951a062e15df290a137428e1e0f4d5ce">SDL_imageFilterBinarizeUsingThreshold</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char T)</td></tr>
<tr class="memdesc:a951a062e15df290a137428e1e0f4d5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using BinarizeUsingThreshold: D = (S &gt;= T) ? 255:0.  <a href="#a951a062e15df290a137428e1e0f4d5ce"></a><br/></td></tr>
<tr class="memitem:ab7224abc4ecc1b8a6f4441ef8379515f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#ab7224abc4ecc1b8a6f4441ef8379515f">SDL_imageFilterClipToRange</a> (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char Tmin, unsigned char Tmax)</td></tr>
<tr class="memdesc:ab7224abc4ecc1b8a6f4441ef8379515f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ClipToRange: D = (S &gt;= Tmin) &amp; (S &lt;= Tmax) S:Tmin | Tmax.  <a href="#ab7224abc4ecc1b8a6f4441ef8379515f"></a><br/></td></tr>
<tr class="memitem:ab018ace4db884cac953b06b09c00828b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#ab018ace4db884cac953b06b09c00828b">SDL_imageFilterNormalizeLinear</a> (unsigned char *Src, unsigned char *Dest, unsigned int length, int Cmin, int Cmax, int Nmin, int Nmax)</td></tr>
<tr class="memdesc:ab018ace4db884cac953b06b09c00828b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using NormalizeLinear: D = saturation255((Nmax - Nmin)/(Cmax - Cmin)*(S - Cmin) + Nmin)  <a href="#ab018ace4db884cac953b06b09c00828b"></a><br/></td></tr>
<tr class="memitem:a8e7e4138a93e26f1912763189d407770"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a8e7e4138a93e26f1912763189d407770">SDL_imageFilterConvolveKernel3x3Divide</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor)</td></tr>
<tr class="memdesc:a8e7e4138a93e26f1912763189d407770"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ConvolveKernel3x3Divide: Dij = saturation0and255( ... )  <a href="#a8e7e4138a93e26f1912763189d407770"></a><br/></td></tr>
<tr class="memitem:ac9a556492480ce71f54d456a0ff7e6cb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#ac9a556492480ce71f54d456a0ff7e6cb">SDL_imageFilterConvolveKernel5x5Divide</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor)</td></tr>
<tr class="memdesc:ac9a556492480ce71f54d456a0ff7e6cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ConvolveKernel5x5Divide: Dij = saturation0and255( ... )  <a href="#ac9a556492480ce71f54d456a0ff7e6cb"></a><br/></td></tr>
<tr class="memitem:a363f48e6843fd3f48da53688b89bca48"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a363f48e6843fd3f48da53688b89bca48">SDL_imageFilterConvolveKernel7x7Divide</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor)</td></tr>
<tr class="memdesc:a363f48e6843fd3f48da53688b89bca48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ConvolveKernel7x7Divide: Dij = saturation0and255( ... )  <a href="#a363f48e6843fd3f48da53688b89bca48"></a><br/></td></tr>
<tr class="memitem:ae1e91ff193beed110a71119ec901f09d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#ae1e91ff193beed110a71119ec901f09d">SDL_imageFilterConvolveKernel9x9Divide</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor)</td></tr>
<tr class="memdesc:ae1e91ff193beed110a71119ec901f09d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ConvolveKernel9x9Divide: Dij = saturation0and255( ... )  <a href="#ae1e91ff193beed110a71119ec901f09d"></a><br/></td></tr>
<tr class="memitem:ac329e5a3b60351768c96c94db9f9cf97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#ac329e5a3b60351768c96c94db9f9cf97">SDL_imageFilterConvolveKernel3x3ShiftRight</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift)</td></tr>
<tr class="memdesc:ac329e5a3b60351768c96c94db9f9cf97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ConvolveKernel3x3ShiftRight: Dij = saturation0and255( ... )  <a href="#ac329e5a3b60351768c96c94db9f9cf97"></a><br/></td></tr>
<tr class="memitem:a5253738dc4c892352b078d9a7dec2b20"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a5253738dc4c892352b078d9a7dec2b20">SDL_imageFilterConvolveKernel5x5ShiftRight</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift)</td></tr>
<tr class="memdesc:a5253738dc4c892352b078d9a7dec2b20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ConvolveKernel5x5ShiftRight: Dij = saturation0and255( ... )  <a href="#a5253738dc4c892352b078d9a7dec2b20"></a><br/></td></tr>
<tr class="memitem:a48b40065652dda699875f1425b9227a6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a48b40065652dda699875f1425b9227a6">SDL_imageFilterConvolveKernel7x7ShiftRight</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift)</td></tr>
<tr class="memdesc:a48b40065652dda699875f1425b9227a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ConvolveKernel7x7ShiftRight: Dij = saturation0and255( ... )  <a href="#a48b40065652dda699875f1425b9227a6"></a><br/></td></tr>
<tr class="memitem:a6aaa30dc51d1e51585d02d123b0f1a7a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a6aaa30dc51d1e51585d02d123b0f1a7a">SDL_imageFilterConvolveKernel9x9ShiftRight</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift)</td></tr>
<tr class="memdesc:a6aaa30dc51d1e51585d02d123b0f1a7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using ConvolveKernel9x9ShiftRight: Dij = saturation255( ... )  <a href="#a6aaa30dc51d1e51585d02d123b0f1a7a"></a><br/></td></tr>
<tr class="memitem:a015fe05161b701162d9ecffb01413f1e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a015fe05161b701162d9ecffb01413f1e">SDL_imageFilterSobelX</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns)</td></tr>
<tr class="memdesc:a015fe05161b701162d9ecffb01413f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using SobelX: Dij = saturation255( ... )  <a href="#a015fe05161b701162d9ecffb01413f1e"></a><br/></td></tr>
<tr class="memitem:a0d21af83f0183fcd697324cffe3ab3d7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a0d21af83f0183fcd697324cffe3ab3d7">SDL_imageFilterSobelXShiftRight</a> (unsigned char *Src, unsigned char *Dest, int rows, int columns, unsigned char NRightShift)</td></tr>
<tr class="memdesc:a0d21af83f0183fcd697324cffe3ab3d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter using SobelXShiftRight: Dij = saturation255( ... )  <a href="#a0d21af83f0183fcd697324cffe3ab3d7"></a><br/></td></tr>
<tr class="memitem:afbfcc8c03e3d791ac74c955d14a135e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#afbfcc8c03e3d791ac74c955d14a135e4">SDL_imageFilterAlignStack</a> (void)</td></tr>
<tr class="memdesc:afbfcc8c03e3d791ac74c955d14a135e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Align stack to 32 byte boundary,.  <a href="#afbfcc8c03e3d791ac74c955d14a135e4"></a><br/></td></tr>
<tr class="memitem:a3147eb5ddd4965d65702f0e533b42974"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_d_l2__image_filter_8c.html#a3147eb5ddd4965d65702f0e533b42974">SDL_imageFilterRestoreStack</a> (void)</td></tr>
<tr class="memdesc:a3147eb5ddd4965d65702f0e533b42974"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restore previously aligned stack.  <a href="#a3147eb5ddd4965d65702f0e533b42974"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a700fb30611761c46a674a45cc28ff561"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="_s_d_l2__image_filter_8c.html#a700fb30611761c46a674a45cc28ff561">SWAP_32</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(((x) &gt;&gt; 24) | (((x) &amp; 0x00ff0000) &gt;&gt; 8)  | (((x) &amp; 0x0000ff00) &lt;&lt; 8)  | ((x) &lt;&lt; 24))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Swaps the byte order in a 32bit integer (LSB becomes MSB, etc.). </p>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00061">61</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a472909f904274255cd6793c520172e48"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#aaa9e8718bcba856ddee135385ebdec26">SDL_imageFilterAbsDiff</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using AbsDiff: D = | S1 - S2 |. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00542">542</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a9f06507eb0b63198dbd67495d61c9b20"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a1e4de9be8feb43595719fd0494601952">SDL_imageFilterAdd</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using Add: D = saturation255(S1 + S2) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00173">173</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a812cb307cb60ef31f1ffe81a9eee6bb1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#ad00178c9482a9959023a6bec03c8dba5">SDL_imageFilterAddByte</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>C</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using AddByte: D = saturation255(S + C) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">C</td><td>Constant value to add (C).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l01791">1791</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab82db97d129c8cfc36780bcdc6286fcc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a0da2fbdf760a1e248200763e83917c33">SDL_imageFilterAddByteToHalf</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>C</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using AddByteToHalf: D = saturation255(S/2 + C) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">C</td><td>Constant to add (C).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l02068">2068</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a660543426c47dfec39a349eb3b8f905b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#ab7d7f266f047a63755a2341cdfe018e9">SDL_imageFilterAddUint</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>C</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using AddUint: D = saturation255((S[i] + Cs[i % 4]), Cs=Swap32((uint)C) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">C</td><td>Constant to add (C).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l01919">1919</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="afbfcc8c03e3d791ac74c955d14a135e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_d_l2__image_filter_8c.html#afbfcc8c03e3d791ac74c955d14a135e4">SDL_imageFilterAlignStack</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Align stack to 32 byte boundary,. </p>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l07326">7326</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a951a062e15df290a137428e1e0f4d5ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a02d89f9fa47f1f5c2d969a9d86acb041">SDL_imageFilterBinarizeUsingThreshold</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>T</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using BinarizeUsingThreshold: D = (S &gt;= T) ? 255:0. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">T</td><td>The threshold boundary (inclusive).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l03534">3534</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a85837ce1b5de1f907b6b9053922b5cbc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a47a7564f857e42dcc2e3b5f8cd2943a9">SDL_imageFilterBitAnd</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using BitAnd: D = S1 &amp; S2. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l01278">1278</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="ac3abfaa8ec2e88c3c4893588c5555856"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#ac11af558f478ec72eb2b61e8bdf43225">SDL_imageFilterBitNegation</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using BitNegation: D = !S. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l01671">1671</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a5cf1c477f4e32d02f74ee95d9f7b0021"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a7c6288c51dcf074b4ba8f1bf0c349f02">SDL_imageFilterBitOr</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using BitOr: D = S1 | S2. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l01392">1392</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab7224abc4ecc1b8a6f4441ef8379515f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a46a5728f8857b0a06694828375527451">SDL_imageFilterClipToRange</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>Tmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>Tmax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ClipToRange: D = (S &gt;= Tmin) &amp; (S &lt;= Tmax) S:Tmin | Tmax. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">Tmin</td><td>Lower (inclusive) boundary of the clipping range. </td></tr>
    <tr><td class="paramname">Tmax</td><td>Upper (inclusive) boundary of the clipping range.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l03691">3691</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a8e7e4138a93e26f1912763189d407770"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a8e7e4138a93e26f1912763189d407770">SDL_imageFilterConvolveKernel3x3Divide</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">signed short *&#160;</td>
          <td class="paramname"><em>Kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>Divisor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ConvolveKernel3x3Divide: Dij = saturation0and255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to convolve. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;2. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;2. </td></tr>
    <tr><td class="paramname">Kernel</td><td>The 2D convolution kernel of size 3x3. </td></tr>
    <tr><td class="paramname">Divisor</td><td>The divisor of the convolution sum. Must be &gt;0.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l03980">3980</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="ac329e5a3b60351768c96c94db9f9cf97"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#ac329e5a3b60351768c96c94db9f9cf97">SDL_imageFilterConvolveKernel3x3ShiftRight</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">signed short *&#160;</td>
          <td class="paramname"><em>Kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>NRightShift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ConvolveKernel3x3ShiftRight: Dij = saturation0and255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to convolve. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;2. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;2. </td></tr>
    <tr><td class="paramname">Kernel</td><td>The 2D convolution kernel of size 3x3. </td></tr>
    <tr><td class="paramname">NRightShift</td><td>The number of right bit shifts to apply to the convolution sum. Must be &lt;7.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l05378">5378</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="ac9a556492480ce71f54d456a0ff7e6cb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#ac9a556492480ce71f54d456a0ff7e6cb">SDL_imageFilterConvolveKernel5x5Divide</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">signed short *&#160;</td>
          <td class="paramname"><em>Kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>Divisor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ConvolveKernel5x5Divide: Dij = saturation0and255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to convolve. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;4. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;4. </td></tr>
    <tr><td class="paramname">Kernel</td><td>The 2D convolution kernel of size 5x5. </td></tr>
    <tr><td class="paramname">Divisor</td><td>The divisor of the convolution sum. Must be &gt;0.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l04170">4170</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a5253738dc4c892352b078d9a7dec2b20"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a5253738dc4c892352b078d9a7dec2b20">SDL_imageFilterConvolveKernel5x5ShiftRight</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">signed short *&#160;</td>
          <td class="paramname"><em>Kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>NRightShift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ConvolveKernel5x5ShiftRight: Dij = saturation0and255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to convolve. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;4. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;4. </td></tr>
    <tr><td class="paramname">Kernel</td><td>The 2D convolution kernel of size 5x5. </td></tr>
    <tr><td class="paramname">NRightShift</td><td>The number of right bit shifts to apply to the convolution sum. Must be &lt;7.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l05555">5555</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a363f48e6843fd3f48da53688b89bca48"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a363f48e6843fd3f48da53688b89bca48">SDL_imageFilterConvolveKernel7x7Divide</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">signed short *&#160;</td>
          <td class="paramname"><em>Kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>Divisor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ConvolveKernel7x7Divide: Dij = saturation0and255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to convolve. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;6. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;6. </td></tr>
    <tr><td class="paramname">Kernel</td><td>The 2D convolution kernel of size 7x7. </td></tr>
    <tr><td class="paramname">Divisor</td><td>The divisor of the convolution sum. Must be &gt;0.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l04473">4473</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a48b40065652dda699875f1425b9227a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a48b40065652dda699875f1425b9227a6">SDL_imageFilterConvolveKernel7x7ShiftRight</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">signed short *&#160;</td>
          <td class="paramname"><em>Kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>NRightShift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ConvolveKernel7x7ShiftRight: Dij = saturation0and255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to convolve. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;6. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;6. </td></tr>
    <tr><td class="paramname">Kernel</td><td>The 2D convolution kernel of size 7x7. </td></tr>
    <tr><td class="paramname">NRightShift</td><td>The number of right bit shifts to apply to the convolution sum. Must be &lt;7.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l05856">5856</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="ae1e91ff193beed110a71119ec901f09d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#ae1e91ff193beed110a71119ec901f09d">SDL_imageFilterConvolveKernel9x9Divide</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">signed short *&#160;</td>
          <td class="paramname"><em>Kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>Divisor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ConvolveKernel9x9Divide: Dij = saturation0and255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to convolve. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;8. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;8. </td></tr>
    <tr><td class="paramname">Kernel</td><td>The 2D convolution kernel of size 9x9. </td></tr>
    <tr><td class="paramname">Divisor</td><td>The divisor of the convolution sum. Must be &gt;0.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l04830">4830</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a6aaa30dc51d1e51585d02d123b0f1a7a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a6aaa30dc51d1e51585d02d123b0f1a7a">SDL_imageFilterConvolveKernel9x9ShiftRight</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">signed short *&#160;</td>
          <td class="paramname"><em>Kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>NRightShift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ConvolveKernel9x9ShiftRight: Dij = saturation255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to convolve. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;8. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;8. </td></tr>
    <tr><td class="paramname">Kernel</td><td>The 2D convolution kernel of size 9x9. </td></tr>
    <tr><td class="paramname">NRightShift</td><td>The number of right bit shifts to apply to the convolution sum. Must be &lt;7.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l06219">6219</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0ea22f01c6a4724bac307da3e5355f58"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a2944f525acc587ca8d701fbdf1a49c36">SDL_imageFilterDiv</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using Div: D = S1 / S2. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l01549">1549</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="ace072118fef77973210eb04fb4bfc779"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a6012332e1b5c33fad53d71c7848db823">SDL_imageFilterMean</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using Mean: D = S1/2 + S2/2. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00308">308</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a798ce71024ee1a1d1b174fd60fe79917"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#ae3f67cbe712f604b16b6de3f4bfbf31c">SDL_imageFilterMMXdetect</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>MMX detection routine (with override flag). </p>
<dl class="section return"><dt>Returns:</dt><dd>1 of MMX was detected, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00080">80</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a5dff661660755161bb4aaf6199cd1384"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_d_l2__image_filter_8h.html#afc46d09d46b1302becfc170214dee0c0">SDL_imageFilterMMXoff</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Disable MMX check for filter functions and and force to use non-MMX C based code. </p>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00093">93</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a353ee234c3b51b33c4c5c4b30db5832d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_d_l2__image_filter_8h.html#a0b1d8468dc6e6304b62276acbb7336f6">SDL_imageFilterMMXon</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable MMX check for filter functions and use MMX code if available. </p>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00101">101</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="af4633031d40a9ea0956a2f3c6c87a384"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a1966f22bee81045917e776fd64821051">SDL_imageFilterMult</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using Mult: D = saturation255(S1 * S2) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00729">729</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a06f7a19d6e2fc89d7b48cc45d715806d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#aef668f157cc152554872ccac491ee2f7">SDL_imageFilterMultByByte</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>C</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using MultByByte: D = saturation255(S * C) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays. </td></tr>
    <tr><td class="paramname">C</td><td>Constant to multiply with (C).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l02790">2790</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a80737f6427c7bdb30d39a92f6524fc14"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a462b662e34e0ea7f1da83fb493f9d9f5">SDL_imageFilterMultDivby2</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using MultDivby2: D = saturation255(S1/2 * S2) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l01000">1000</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a30e685653eb1050c7d48feaeb8f801a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a52e4de0e4818b4256c189f35e68e1242">SDL_imageFilterMultDivby4</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using MultDivby4: D = saturation255(S1/2 * S2/2) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l01141">1141</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a5f3c9fd40426bb46eba5ac167505dcc5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#aff3256626208bfc490268cf07e8a29af">SDL_imageFilterMultNor</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using MultNor: D = S1 * S2. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00862">862</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a346db972dff9c56e3c45c904eaa3c39a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a346db972dff9c56e3c45c904eaa3c39a">SDL_imageFilterMultNorASM</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>SrcLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal ASM Filter using MultNor: D = S1 * S2. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">SrcLength</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00792">792</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab018ace4db884cac953b06b09c00828b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#ade0729be518dec0b26ec164ff4e63476">SDL_imageFilterNormalizeLinear</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Cmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Cmax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Nmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Nmax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using NormalizeLinear: D = saturation255((Nmax - Nmin)/(Cmax - Cmin)*(S - Cmin) + Nmin) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">Cmin</td><td>Normalization constant. </td></tr>
    <tr><td class="paramname">Cmax</td><td>Normalization constant. </td></tr>
    <tr><td class="paramname">Nmin</td><td>Normalization constant. </td></tr>
    <tr><td class="paramname">Nmax</td><td>Normalization constant.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l03909">3909</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a3147eb5ddd4965d65702f0e533b42974"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_d_l2__image_filter_8c.html#a3147eb5ddd4965d65702f0e533b42974">SDL_imageFilterRestoreStack</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Restore previously aligned stack. </p>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l07354">7354</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a98372fea76310903abef7808db10d226"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a29891456dee25b30c8da8f767d7545c5">SDL_imageFilterShiftLeft</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter ShiftLeft: D = saturation255(S &lt;&lt; N) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S1). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">N</td><td>Number of bit-positions to shift (N). Valid range is 0 to 8.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l03393">3393</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4561a73b249a26babc4c469ffbdae604"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a656657c3f31effa01163532fd96b3011">SDL_imageFilterShiftLeftByte</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ShiftLeftByte: D = (S &lt;&lt; N) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays. </td></tr>
    <tr><td class="paramname">N</td><td>Number of bit-positions to shift (N). Valid range is 0 to 8.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l03093">3093</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a250e796fb2db470da0a78b74b78114e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a3ea712cad49735ca672e1d2da1e68516">SDL_imageFilterShiftLeftUint</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ShiftLeftUint: D = ((uint)S &lt;&lt; N) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">N</td><td>Number of bit-positions to shift (N). Valid range is 0 to 32.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l03210">3210</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a68851aed2dcc5dfd2f3b258236f3b88c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a1ed688eb128d71af36386e9853d001a9">SDL_imageFilterShiftRight</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ShiftRight: D = saturation0(S &gt;&gt; N) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">N</td><td>Number of bit-positions to shift (N). Valid range is 0 to 8.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l02476">2476</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0713d6c267fba9756d6beae81e89f9e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#ad8d11768b921ba823d412166903340b8">SDL_imageFilterShiftRightAndMultByByte</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>N</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>C</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ShiftRightAndMultByByte: D = saturation255((S &gt;&gt; N) * C) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">N</td><td>Number of bit-positions to shift (N). Valid range is 0 to 8. </td></tr>
    <tr><td class="paramname">C</td><td>Constant to multiply with (C).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l02943">2943</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a540d4625d76bcd03318c2a59ce650fdb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a2e5ec075145b34c5ea797ffa70891e53">SDL_imageFilterShiftRightUint</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using ShiftRightUint: D = saturation0((uint)S[i] &gt;&gt; N) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S1). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">N</td><td>Number of bit-positions to shift (N). Valid range is 0 to 32.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l02594">2594</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a015fe05161b701162d9ecffb01413f1e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a015fe05161b701162d9ecffb01413f1e">SDL_imageFilterSobelX</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using SobelX: Dij = saturation255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to sobel-filter. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;2. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;7.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l06799">6799</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0d21af83f0183fcd697324cffe3ab3d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a0d21af83f0183fcd697324cffe3ab3d7">SDL_imageFilterSobelXShiftRight</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>columns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>NRightShift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using SobelXShiftRight: Dij = saturation255( ... ) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src</td><td>The source 2D byte array to sobel-filter. Should be different from destination. </td></tr>
    <tr><td class="paramname">Dest</td><td>The destination 2D byte array to store the result in. Should be different from source. </td></tr>
    <tr><td class="paramname">rows</td><td>Number of rows in source/destination array. Must be &gt;2. </td></tr>
    <tr><td class="paramname">columns</td><td>Number of columns in source/destination array. Must be &gt;8. </td></tr>
    <tr><td class="paramname">NRightShift</td><td>The number of right bit shifts to apply to the filter sum. Must be &lt;7.</td></tr>
  </table>
  </dd>
</dl>
<p>Note: Non-MMX implementation not available for this function.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns 1 if filter was applied, 0 otherwise. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l07052">7052</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a3c01cf8576ea7a0dfc09dbaa953c9287"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a720893e0f6512aee4dd3875b9c9607b5">SDL_imageFilterSub</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using Sub: D = saturation0(S1 - S2) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the first source byte array (S1). </td></tr>
    <tr><td class="paramname">Src2</td><td>Pointer to the start of the second source byte array (S2). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l00422">422</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a387fb6f0d48cc5d08f37f7f9b92d14b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a5899423c538fa35660ded0f5945c014f">SDL_imageFilterSubByte</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>C</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using SubByte: D = saturation0(S - C) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source arrays. </td></tr>
    <tr><td class="paramname">C</td><td>Constant to subtract (C).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l02196">2196</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="a657e128016cc448778007d8b6475dd65"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8c.html#a657e128016cc448778007d8b6475dd65">SDL_imageFilterSubByteMMX</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>SrcLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>C</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal MMX Filter using SubByte: D = saturation0(S - C) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">SrcLength</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">C</td><td>Constant to subtract (C).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l02130">2130</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
<a class="anchor" id="abb343ef95e22945e1d4d648b2e176e64"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_d_l2__image_filter_8h.html#a8532da4511ef9657c8688f66e6309118">SDL_imageFilterSubUint</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>Dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>C</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter using SubUint: D = saturation0(S[i] - Cs[i % 4]), Cs=Swap32((uint)C) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Src1</td><td>Pointer to the start of the source byte array (S1). </td></tr>
    <tr><td class="paramname">Dest</td><td>Pointer to the start of the destination byte array (D). </td></tr>
    <tr><td class="paramname">length</td><td>The number of bytes in the source array. </td></tr>
    <tr><td class="paramname">C</td><td>Constant to subtract (C).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Returns 0 for success or -1 for error. </dd></dl>

<p>Definition at line <a class="el" href="_s_d_l2__image_filter_8c_source.html#l02325">2325</a> of file <a class="el" href="_s_d_l2__image_filter_8c_source.html">SDL2_imageFilter.c</a>.</p>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.0
</small></address>

</body>
</html>
